//！非空断言
let zs:{
    uname:string
} | null = null

zs = {
    uname:'aaa'
}

zs!.uname //！叫做非空断言

//？可选属性判断
let ls:{
    uname:string,
    age?:{
        shisui:number,
        xusui:number
    }
}={
    uname:'李四',
    // age:{
    //     shisui:20,
    //     xusui:21
    // }
}

ls.age?.shisui //可选属性，如果age存在就继续访问shisui属性；如果age不存在就不继续访问

//等价于

if(ls.age){
    ls.age.shisui
}